In video editing, it is often desirable or necessary to divide a video into multiple segments, such as for efficient storage, removing unwanted segments, rearranging segments, etc. Techniques have been developed for optimally dividing a video into multiple segments, such as in accordance with predefined video segment optimization criteria. Applying such criteria will result in the division of a video at different sets of segmentation points depending on the number of segments desired, where there may be little or no overlap between the different sets of segmentation points.
It is also often desirable to present a software user with a hierarchical view of options from which to choose, where an option that is represented at a higher level of the hierarchical view is preserved at succeeding lower levels of the hierarchical view. A hierarchy is usually a convenient and intuitive way of presenting information at a variety of increasingly granular levels. In a hierarchy, a division that is represented at a higher level of the hierarchy is maintained at succeeding lower levels of the hierarchy. Hierarchies are often constructed using either a “top down” approach in which divisions at higher levels of the hierarchy are split into increasingly granular divisions at lower levels of the hierarchy, or using a “bottom up” approach in which divisions at lower levels of the hierarchy are merged into increasingly fewer divisions at higher levels of the hierarchy. Often, the merges or splits at a given level are determined in a “greedy” manner that represents the “best” merges or splits for that level, even if one or more of these merges or splits result in sub-optimal divisions at one or more other levels of the hierarchy.